﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel
Imports roncliProductions.LibWowArmory.Enums

Namespace roncliProductions.LibWowArmory.PvP

    ''' <summary>
    ''' A class containing information about an arena team.
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Team

        ''' <summary>
        ''' The realm the team plays on.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Realm As String

        ''' <summary>
        ''' The team's ranking.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks>A 0 indicates that the team is unranked.</remarks>
        Public Property Ranking As Integer

        ''' <summary>
        ''' The team's rating.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Rating As Integer

        ''' <summary>
        ''' The team size.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property TeamSize As Integer

        ''' <summary>
        ''' The date the team was created.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Created As Date

        ''' <summary>
        ''' The name of the team.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The number of games played.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property GamesPlayed As Integer

        ''' <summary>
        ''' The number of games won.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property GamesWon As Integer

        ''' <summary>
        ''' The number of games lost.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property GamesLost As Integer

        ''' <summary>
        ''' The number of games played this session.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property SessionGamesPlayed As Integer

        ''' <summary>
        ''' The number of games won this session.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property SessionGamesWon As Integer

        ''' <summary>
        ''' The number of games lost this session.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property SessionGamesLost As Integer

        ''' <summary>
        ''' The team's ranking last session.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property LastSessionRanking As Integer

        ''' <summary>
        ''' The side the team is on.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Side As Side

        ''' <summary>
        ''' The team's ranking this session.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property CurrentWeekRanking As Integer

        Private colMembers As Collection(Of Member)
        ''' <summary>
        ''' A list of members on the team.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Members As Collection(Of Member)
            Get
                Return colMembers
            End Get
        End Property

        Protected Friend Sub New(strRealm As String, intRanking As Integer, intRating As Integer, intTeamSize As Integer, dtCreated As Date, strName As String, intGamesPlayed As Integer, intGamesWon As Integer, intGamesLost As Integer, intSessionGamesPlayed As Integer, intSessionGamesWon As Integer, intSessionGamesLost As Integer, intLastSessionRanking As Integer, sSide As Side, intCurrentWeekRanking As Integer, mMembers As Collection(Of Member))
            Realm = strRealm
            Ranking = intRanking
            Rating = intRating
            TeamSize = intTeamSize
            Created = dtCreated
            Name = strName
            GamesPlayed = intGamesPlayed
            GamesWon = intGamesWon
            GamesLost = intGamesLost
            SessionGamesPlayed = intSessionGamesPlayed
            SessionGamesWon = intSessionGamesWon
            SessionGamesLost = intSessionGamesLost
            LastSessionRanking = intLastSessionRanking
            Side = sSide
            CurrentWeekRanking = intCurrentWeekRanking
            colMembers = mMembers
        End Sub

    End Class

End Namespace
